
#ifndef DetectorRegiones_h
#define DetectorRegiones_h

#include "Placa.h"
#include <iostream>
#include <fstream>
#include <vector>
#include "Hough.h"
using namespace	std;
using namespace cv;

class DetectorRegiones
{
public:
	int deltaThresholdCannyLow;
	int deltaThresholdCannyHigh;
	int deltaThresholdHough;
	int lineLength;
	bool detectado;
	long deltaTiempo;
	char* houghWindowName;
	char* cannyWindowName;
	vector<vector<cv::Point2f> >* cornersGlobal;
	string nombreArchivo;
	Mat processedImage;
	Mat input_image_color;
	VideoWriter writer;
	DetectorRegiones(void);
	~DetectorRegiones(void);
	Mat run(bool esVideo);
	void hallarContornosPosibles(Mat src,vector<vector<cv::Point> > &contornosFiltrados,int perimetro_maximo_aproximado);
	void filtrarVentanas(vector<vector<cv::Point2f> > cuadrilateros,vector<vector<cv::Point2f> > &cuadrilaterosFiltrados,int perimetro_maximo_aproximado);
	bool hallarCuadrilateros(Mat src,Hough houghModule,vector<cv::Point> contorno,vector<vector<cv::Point2f> > &corners,vector<vector<vector<cv::Point> > > &lineasxcontorno);
	Mat dibujarCorners();
	ofstream resultadosExp;
	ofstream resultadosPreproc;
	ofstream resultadosContorno;
	ofstream resultadosHough;
	void hallarImagenesContornos(vector<Mat> &contornosImagen);
	void hallarImagenesCorners(vector<Mat> &cornersImagen);
};

#endif